import {useCallback, useState} from 'react';
import produce from 'immer';

// 使用immer.js 改善 setState(Object) 的开发体验
export function useImmerState(initialValue) {
  const [val, updateVal] = useState(initialValue);
  return [
    val,
    useCallback(updater => {
      updateVal(produce(updater));
    }, [])
  ];
}